package com.pond.pond.mapper;

import com.pond.pond.domain.PondOrderItem;
import com.pond.pond.domain.vo.OrderVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单项Mapper接口
 */
public interface PondOrderItemMapper {
    
    /**
     * 根据订单ID查询订单项列表
     */
    List<OrderVO.OrderItemVO> selectByOrderId(@Param("orderId") Long orderId);
    
    /**
     * 批量插入订单项
     */
    int insertBatch(@Param("items") List<PondOrderItem> items);
    
    /**
     * 根据订单ID删除订单项
     */
    int deleteByOrderId(@Param("orderId") Long orderId);
    
    /**
     * 统计订单项数量
     */
    int countByOrderId(@Param("orderId") Long orderId);
    
    /**
     * 计算订单总金额
     */
    Double sumAmountByOrderId(@Param("orderId") Long orderId);
    
    /**
     * 新增订单项
     */
    int insertPondOrderItem(PondOrderItem item);
    
    /**
     * 修改订单项
     */
    int updatePondOrderItem(PondOrderItem item);
    
    /**
     * 删除订单项
     */
    int deletePondOrderItemById(Long id);
    
    /**
     * 根据ID查询订单项
     */
    PondOrderItem selectPondOrderItemById(Long id);
    
    /**
     * 查询消费记录列表
     */
    List<OrderVO.OrderItemVO> selectConsumptionList(
        @Param("orderNo") String orderNo,
        @Param("itemName") String itemName, 
        @Param("consumptionType") String consumptionType,
        @Param("fishTypeId") Long fishTypeId,
        @Param("beginTime") String beginTime,
        @Param("endTime") String endTime);
}